The Tuning Language for Concurrent Collections
نویسندگان
چکیده
Concurrent Collections (CnC) is a programming model for parallel systems. A novel aspect of this model is that there is a clear separation of the specification of the application semantics, called the domain specification, and the tuning specification, which maps the domain spec to a platform. The domain spec is declarative specification that indicates the constraints on execution. These correspond to data dependences and control dependences. The domain spec can be written by a domain expert who does not necessarily have knowledge of the target architecture. The separation of concerns isolates the domain expert from the tuning facility. This isolation permits the tuning language to provide strong capabilities for control and flexibility for a tuning expert. In addition, the separation means that a given domain spec can have multiple tuning specs. There might be multiple targets, and within the same target there might be distinct goals, such as performance vs. power. This paper introduces the CnC language for tuning specifications in some detail and show examples of its use. The goal of the tuning language is to provide capability for mapping the parallelism implicit in the domain spec for high-performance execution on a target platform. The focus of this activity is locality. The basic concept in the tuning language is the affinity group, a set of computations that the tuner suggests executing close in time and space. Hierarchical affinity groups allow the specification of relative levels of affinity. They provide a mechanism that allows the programmer to specify locality, while allowing but not requiring him to distinguish between spatial and temporal locality. We will use Cholesky factorization to show the use of multiple tuning specs for a single domain spec. The tuning spec is under active design.
منابع مشابه
A Case Study in Coordination Programming: Performance Evaluation of S-Net vs Concurrent Collections
We present a programming methodology and runtime performance case study comparing the declarative data flow coordination language S-NET with Intel’s Concurrent Collections (CnC). As a coordination language S-NET achieves a near-complete separation of concerns between sequential software components implemented in a separate algorithmic language and their parallel orchestration in an asynchronous...
متن کاملMulti-core Implementations of the Concurrent Collections Programming Model
In this paper we introduce the Concurrent Collections programming model, which builds on past work on TStreams [8]. In this model, programs are written in terms of high-level application-specific operations. These operations are partially ordered according to only their semantic constraints. These partial orderings correspond to data flow and control flow. This approach supports an important se...
متن کاملThe Concurrent Collections Programming Model
We introduce the Concurrent Collections (CnC) programming model. In this model, programs are written in terms of high-level operations. These operations are partially ordered according to only their semantic constraints. These partial orderings correspond to data dependences and control dependences. The role of the domain expert, whose interest and expertise is in the application domain, and th...
متن کاملICC + + { A C + + Dialect for High Performance Parallel ComputingA
ICC++ is a new C++ concurrent dialect which allows sequential/parallel program versions to be maintained with single source, the construction of concurrent data abstractions, convenient expression of irregular and ne-grained concurrency, and supports high performance implementations. ICC++ provides annotations for potential concurrency, facilitating both sharing source with sequential programs ...
متن کاملLecture 26 : Dataflow Programming with Intel Concurrent Collections
The Concurrent Collections (CnC) model was developed to address the need for making parallel programming accessible to domain experts or non-professional programmers. One approach that has historically addressed this problem is the creation of domain specific languages (DSLs), such as Matlab, R, SQL, and Google’s MapReduce framework that hide the details of parallelism when programming for a sp...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2011